/**
 * @file    pb_comm.h
 * @brief   proto buf协议通信服务
 * @details This is the detail description.
 * @author  wang-haoyu
 * @date    2025年2月21日 (created)
 * @version 0.0.1
 * @par Copyright (C):
 *          HangZhou HuaYi Science and Technology Ltd. All Rights Reserved.
 * @par Encoding:
 *          GB2312
 * @par Description        :
 * 1. Hardware Descriptions:
 *      None.
 * 2. Program Architecture:
 *      None.
 * 3. File Usage:
 *      None.
 * 4. Limitations:
 *      None.
 * 5. Else:
 *      None.
 * @par Modification:
 * -# Date          : 2025年2月21日;
 * Revision         : 0.0.1;
 * Author           : wang-haoyu;
 * Contents         :
 */
 
/* =============================================================================
 *                                header files
 * ========================================================================== */
#ifndef __PC_COMM_H
#define __PC_COMM_H
#include "pc_comm_cfg.h"

/* =============================================================================
 *                              macros & constants
 * ========================================================================== */
#define PC_PCCOMM_UART "uart2"
#define PC_COMM_FIFO_NAME "pc_comm_fifo"
#define PC_COMM_FIFO_SIZE 2048

#define PC_COMM_RX_SEM_NAME "pccomm_sem_rx"

#define PC_COMM_TIMER_NAME "pc_connect_timer"
#define PC_COMM_TIMER_FLAG RT_TIMER_FLAG_SOFT_TIMER | RT_TIMER_FLAG_ONE_SHOT
/* =============================================================================
 *                          data structure definitions
 * ========================================================================== */
enum
{
    PC_POWEROFF = 0,	//工控机电源关机状态
	PC_WAIT_CONNECT,	//工控机通信等待连接
	PC_CONNECT,			//工控机通信连接
};
/* =============================================================================
 *                         static variable definitions
 * ========================================================================== */

/* =============================================================================
 *                         static function definitions
 * ========================================================================== */

/* =============================================================================
 *                         global function definitions
 * ========================================================================== */

/*
 * protobuf通信初始化函数
 *
 * Parameter:
 *   Input:
 *   Output:
 * Returns:
 */
int pc_comm_init(void);

/*
 * 工控机通信连接状态反馈
 *
 * Parameter:
 *   Input:
 *   Output:
 * Returns:
 *		-连接状态
 */
rt_uint8_t pc_comm_connect_state(void);

/*
 * 工控机开关机状态设置
 *
 * Parameter:
 *   Input:
 *		-sta_set：设置状态
 *   Output:
 * Returns:
 */
void pc_switch_set_state(bool sta_set);

#endif

/*******************************************************************************
 *                                  EOF
 ******************************************************************************/